// 用户相关类型定义
import { RemoveParam } from './common-api'

// 用户实体
export interface User {
  id: string
  username: string
  password: string
  nickname: string
  realName: string
  avatar: string // 头像
  birthday: string
  email: string
  phone: string
  role: string
  date: string
  gitee: string
  github: string
  description: string
  location: string // 位置
  blogName: string // 博客名称
  blogDescription: string // 博客描述
  personalSummary: string // 个人简述
  blogSummary: string // 博客简述
  menus: string[]
}

// 用户角色
export interface UserRole {
  id: string
  roles: string[]
}

// ==================== 用户API参数类型 ====================

// 登录参数
export interface LoginParam {
  username: string
  password: string
}

// 重置密码参数
export interface ResetPwdParam {
  username: string
  password: string
  confirmPassword: string
  code: string
}

// 修改密码参数
export interface ChangePwdParam {
  newPassword: string
  oldPassword: string
}

// 用户分页查询参数
export interface UserPageParam {
  pageNum: number
  pageSize: number
  username: string
}

// 用户新增修改参数
export interface UserSaveOrUpdateParam {
  id: string
  username: string
  password: string
  nickname: string
  realName: string
  birthday: string
  email: string
  phone: string
  gitee: string
  github: string
  description: string
}

// 用户删除参数
export type UserRemoveParam = RemoveParam

// 用户角色查询参数
export interface UserRolesParam {
  id: string
}

// 用户角色更新参数
export interface UserRolesUpdateParam {
  id: string | number
  roles: Array<string | number>
}

// 用户信息更新参数
export interface UserUpdateParam {
  nickname: string // 昵称
  realName: string // 真实姓名
  birthday: string // 生日
  email: string // 邮箱
  phone: string // 手机
  description: string // 个人简介
  location: string // 位置
  blogName: string // 博客名称
  blogDescription: string // 博客描述
  personalSummary: string // 个人简述
  blogSummary: string // 博客简述
}

// Git信息更新参数
export interface GitUpdateParam {
  gitee: string
  github: string
}

// 菜单查询参数
export type MenuParam = object
